// 管理用户相关数据

import { defineStore } from "pinia";
import { ref } from "vue";
import { useCartStore } from "./cartStore"
import { loginAPI } from '@/apis/user'
import { mergeCartAPI } from "@/apis/cart"


export const useUserStore = defineStore('user', () => {
	// 1.定义管理用户数据的state
	const userInfo = ref({});
	const cartStore = useCartStore();
	// 2.定义获取接口数据的action函数
	const getUserInfo = async ({ account, password }) => {
		const res = await loginAPI({ account, password });
		userInfo.value = res.result;
		// 合并购物车的操作
		mergeCartAPI(cartStore.cartList.map(item => {
			return {
				skuId: item.skuId,
				selected: item.selected,
				count: item.count
			}
		}));
		// 获取购物车列表
		cartStore.updateNewList();
	}

	// 退出登录时清除用户信息
	const clearUserInfo = () => {
		userInfo.value = {}
		cartStore.clearCart()
	}

	// 3.以对象的格式把state和action 返回return出去
	return {
		userInfo,
		getUserInfo,
		clearUserInfo
	}
}, {
	// 持久化配置  存入localStorage
	persist: true
})
